class Gloves {
public:
	int findMinimum(int n, vector<int> left, vector<int> right) {
		int ret = 0;
		int left_cnt = 0, right_cnt = 0;
		int left_min = INT_MAX, right_min = INT_MAX;
		for (int i = 0; i < n; ++i)
		{
			if (left[i] == 0)
			{
				ret += right[i];
			}
			else if (right[i] == 0)
			{
				ret += left[i];
			}
			else
			{
				left_cnt += left[i];
				right_cnt += right[i];
				left_min = min(left[i], left_min);
				right_min = min(right[i], right_min);
			}
		}
		ret += min(left_cnt - left_min, right_cnt - right_min);
		return ret + 2; // 全部情况拿完，再左右各拿一个
	}
};